package cc.lj.internal.merchant.domain.brand.service.impl;

import cc.lj.internal.merchant.domain.brand.model.vo.MerchantBrandDO;
import cc.lj.internal.merchant.domain.brand.model.vo.MerchantBrandRelationDO;
import cc.lj.internal.merchant.domain.brand.model.vo.convert.MerchantBrandPOConvertDO;
import cc.lj.internal.merchant.domain.brand.model.vo.convert.MerchantBrandRelationPOConvertDO;
import cc.lj.internal.merchant.domain.brand.repository.IMerchantBrandRelationRepository;
import cc.lj.internal.merchant.domain.brand.repository.IMerchantBrandRepository;
import cc.lj.internal.merchant.domain.brand.service.IMerchantBrandDomainService;
import cc.lj.internal.merchant.domain.brand.service.IMerchantBrandRelationDomainService;
import cc.lj.internal.merchant.infrastructure.po.MerchantBrandPO;
import cc.lj.internal.merchant.infrastructure.po.MerchantBrandRelationPO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 商户品牌领域服务service实现类
 * @author liangxifeng
 * @date 2022-07-06
 */
@Service("merchantBrandRelationDomainServiceImpl")
@Slf4j
public class MerchantBrandRelationDomainServiceImpl implements IMerchantBrandRelationDomainService {

    @Resource(name = "merchantBrandRelationRepository")
    private IMerchantBrandRelationRepository repository;

    @Override
    public List<MerchantBrandRelationDO> getByMerchantId(Integer merchantId) {
        MerchantBrandRelationPO brandPO = new MerchantBrandRelationPO();
        brandPO.setMbMerchant(merchantId);
        List<MerchantBrandRelationPO> list = repository.getList(brandPO);
        return list.stream().map( t -> MerchantBrandRelationPOConvertDO.INSTANCE.convert(t)).collect(Collectors.toList());
    }

    @Override
    public List<MerchantBrandRelationDO> getList(MerchantBrandRelationDO relationDO) {
        MerchantBrandRelationPO relationPO = MerchantBrandRelationPOConvertDO.INSTANCE.convert(relationDO);
        List<MerchantBrandRelationPO> list = repository.getList(relationPO);
        return list.stream().map( t -> MerchantBrandRelationPOConvertDO.INSTANCE.convert(t)).collect(Collectors.toList());
    }
}
